約 4,102,475 件
https://w.atwiki.jp/cocoareferencejp/pages/94.html
Tags File Management リファレンス 未完 Cocoa トップ リファレンス File Management NSCoder クラスリファレンス NSCoder クラスリファレンス 翻訳元 このページの最終更新:2010-02-02 ADCの最終更新:2006-07-23 継承するクラス NSObject 準拠しているプロトコル NSObject (NSObject) フレームワーク /System/Library/Frameworks/Foundation.framework 使用可能な環境 Mac OS X v10.0以降 コンパニオンガイド Archives and Serializations Programming Guide for Cocoa 宣言ファイル NSCoder.hNSGeometry.h サンプルコード IBFragmentViewMountainsMovie OverlayReducerSimpleStickies 概観(Overview) NSCoderクラスは、具体クラスがオブジェクトやObjective-Cデータアイテムとメモリや他のデータ型間の変換に使うインターフェースを定義する抽象クラスです。このクラスでは、アーカイブ化(オブジェクトやデータアイテムをディスクにどのようにストアするか)やディストリビューション(オブジェクトやデータアイテムを異なるスレッド間やプロセス間でどうコピーするか)の基礎を提供します。この為にFounationが提供している具体クラスはNSArchiver、NSUnarchiver、 NSKeyedArchiver、 NSKeyedUnarchiver、NSPortCoderです。NSCoderの具体クラスは一般にはコーダクラスとして、インスタンスはコーダオブジェクト(または単なるコーダ)として扱われます。値をエンコードすることしかできないコーダオブジェクトはエンコーダオブジェクト、デコードすることしかできないオブジェクトはデコーダオブジェクトとして利用されます。 NSCoderはオブジェクト、スカラー、Cの配列、構造体、文字列、またこれらへのポインタを処理します。共用体(union)、汎用ポインタ(void*)、関数ポインタ、多重配列等プラットフォームに依存するデータ型を扱うことはできません。コーダオブジェクトはオブジェクトのデータとともにデータ型もストアするので、バイトストリームからデコードされたオブジェクトは、通常はストリームにエンコードされたもとのオブジェクトと同じクラスのオブジェクトになります。しかしエンコード時にオブジェクトのクラスを変えることもできます。このことは「Archives and Serializations Programming Guide for Cocoa」で解説しています。 このクラスでできること(Tasks) コーダへの確認(Testing Coder) – allowsKeyedCoding – containsValueForKey データのエンコード(Encoding Data) – encodeArrayOfObjCType count at – encodeBool forKey – encodeBycopyObject – encodeByrefObject – encodeBytes length – encodeBytes length forKey – encodeConditionalObject – encodeConditionalObject forKey – encodeDataObject – encodeDouble forKey – encodeFloat forKey – encodeInt forKey – encodeInteger forKey – encodeInt32 forKey – encodeInt64 forKey – encodeObject – encodeObject forKey – encodePoint – encodePoint forKey – encodePropertyList – encodeRect – encodeRect forKey – encodeRootObject – encodeSize – encodeSize forKey – encodeValueOfObjCType at – encodeValuesOfObjCTypes – encodeNXObject Deprecated in Mac OS X v10.5 データのデコード(Decoding Data) – decodeArrayOfObjCType count at – decodeBoolForKey – decodeBytesForKey returnedLength – decodeBytesWithReturnedLength – decodeDataObject – decodeDoubleForKey – decodeFloatForKey – decodeIntForKey – decodeIntegerForKey – decodeInt32ForKey – decodeInt64ForKey – decodeObject – decodeObjectForKey – decodePoint – decodePointForKey – decodePropertyList – decodeRect – decodeRectForKey – decodeSize – decodeSizeForKey – decodeValueOfObjCType at – decodeValuesOfObjCTypes – decodeNXObject Deprecated in Mac OS X v10.5 ゾーンの管理(Managing Zones) – objectZone – setObjectZone バージョン情報の取得(Getting Version Information) – systemVersion – versionForClassName インスタンスメソッド
https://w.atwiki.jp/atwikimyj/pages/51.html
携帯端末の環境変数の取得もモジュールで可能です。 perlコミュニティはすばらしいです。 HTTP-MobileAgent http //search.cpan.org/~kurihara/HTTP-MobileAgent-0.26/
https://w.atwiki.jp/atwikimyj/pages/92.html
mod_perl2がめでたく起動し、スクリプトが動作するようになって、 面倒だなと思うのが、httpdのrestart。 スクリプトを直すたびに $ apachectrl restart をしていたが、そんなわけないよな、と思い、調べる。 Apache2 Reload というのを使えばいいらしい。 しかし例外が、、 Catalystとの相性が悪く、使えないらしい。 実際試しても使えない。 対処策を探すと以下のような方法が。 holidays-l開発ブログ [Perl][Catalyst][Apache]CatalystアプリケーションでApache2 Reloadを使えるようにする方法CommentsAdd Star http //d.hatena.ne.jp/holidays-l/20060902/p2 これでもエラーは変わらず。
https://w.atwiki.jp/aias-jsdoctoolkit/pages/58.html
トップページ カスタマイズ 組み込みオブジェクト リファレンス このページではテンプレートで使用できるJsDoc Toolkitの組み込みオブジェクトとそのメンバの一部を説明します。 JsDoc Tookitのソースコードから直接作成した、より詳細なドキュメントはこちらをご覧下さい。 目次 JSDOC 名前空間 JSDOC.JsPlate クラス JSDOC.SymbolSet クラス JSDOC.Symbol クラス JSDOC.DocComment クラス JSDOC.DocTag クラス JSDOC.PluginManager 名前空間 SYS 名前空間 IO 名前空間 LOG 名前空間 Dumper名前空間 Link クラス 関数 組み込みクラスの拡張 ReqExp クラス String クラス 関連項目 JSDOC 名前空間 JsDoc Toolkitが提供する各クラスのコンテナとして機能する名前空間です。クラスコンストラクタのほか、以下のプロパティが定義されています。特に opt プロパティはテンプレート作成者にとって重要です。 プロパティ 説明 Object JSDOC.opt optプロパティは無名オブジェクトで、プロパティとしてコマンドラインオプションの設定値を持っています。プロパティ名はコンフィグファイルで使用されている名称と同じです。ユーザが設定した入力ファイルパスの配列は"_"プロパティにセットされています。またJsDoc Toolkitがそれをパースした実際のソースファイルのリストは、srcFilesプロパティに格納されています。 String JSDOC.VERSION JsDoc Toolkitのバージョン JSDOC.JsPlate クラス JsPlateクラスはテンプレートファイルにシンボルオブジェクトなどのデータを適用し、整形されたドキュメントを生成します。 コンストラクタ 説明 new JsPlate(templateFile) 引数にテンプレートファイルのパスを取り、JsPlateオブジェクトを作成します。 メソッド 説明 String object.process(data[,compact]) テンプレートにデータを渡し、生成されたドキュメント文字列を返します。compact=trueとすると、テンプレートから改行と空白を削除して出力します。 JSDOC.SymbolSet クラス SymbolSetはSymbolオブジェクトのコレクションクラスです。通常JsDoc Toolkitによって1つだけインスタンスが作成され、publish.js内の publish 関数は引数としてこのインスタンスを受け取ります。 メソッド 説明 JSDOC.Symbol object.addSymbol(symbol) Symbolオブジェクトを追加します。追加しようとしているシンボルと同じネームパスを持つシンボルが既に登録されている場合、ネームパスと関連付けられたオブジェクト内の参照は新たに追加されたSymbolオブジェクトに移ります。 void object.deleteSymbol(alias) シンボルのネームパスを引数として受け取り、対応するSymbolオブジェクトの登録を削除します。 Symbol object.getSymbol(alias) シンボルのネームパスを引数として受け取り、対応するSymbolオブジェクトを返します。ネームパスに対応するシンボルが存在しない場合の戻り値はundefinedです。 Symbol object.getSymbolByName(name) シンボルの名前(nameプロパティ)を引数として受け取り、対応するSymbolオブジェクトの内最初に見つかったものを返します。ネームパスに対応するシンボルが存在しない場合の戻り値はundefinedです。 Boolean object.hasSymbol(alias) シンボルのネームパスを引数として受け取り、対応するシンボルが存在すればtrueを、しなければfalseを返します。 String[] object.keys() オブジェクトに登録されている全てのSymbolオブジェクトのネームパスの配列を返します。 String object.renameSymbol(oldAlias,newAlias) oldAlias で登録されたシンボルのネームパスを newAlias に置換し、新しいネームパスを返します。このメソッドがSymbolオブジェクトのaliasプロパティそのものを書き換えてしまう点に注意してください。 Symbol[] object.toArray() オブジェクトに保持されている全てのSymbolオブジェクトの配列を返します。 JSDOC.Symbol クラス Symbolクラスは1つのシンボルを表します。通常このクラスのインスタンスはSymbolSetオブジェクトのメソッドから取得されます。 プロパティ 説明 String object.alias このシンボルの完全なネームパス。ただしファイルシンボルの場合はファイルパスが設定されます。 JSDOC.DocTag object.augments @augmentsタグから作成された、このシンボルの継承元クラス情報を保持するDocTagオブジェクトの配列 String object.author 作者情報。@authorタグが複数記述されていた場合、カンマ区切りの文字列に結合されています。 String object.classDesc クラスの説明文。@classタグまたは@namespaceタグの説明文が設定されています。 JSDOC.DocComment object.comment このシンボルのドックコメントをパースしたDocCommentオブジェクト String object.defaultValue デフォルト値。@defaultタグの内容が設定されています。 String object.deprecated 非推奨情報。@deprecatedタグが複数記述されていた場合、改行文字区切りの文字列に結合されています。 String object.desc シンボルの説明文。ドックコメントの先頭に書かれたタグなしの説明文や、@descriptionタグの説明文が設定されています。またシンボル種別が FILE の場合、@fileOverviewタグの説明文が設定されています。これらが複数記述されていた場合、改行文字区切りの文字列に結合されています。 JSDOC.DocTag[] object.example サンプルコード。@exampleタグをパースしたDocTagオブジェクトの配列です。 JSDOC.DocTag[] object.exceptions 例外。@throwsタグをパースしたDocTagオブジェクトの配列です。 Object[] object.inherits @borrowsタグから作成された、メンバの借用関係を示す無名オブジェクトの配列。無名オブジェクトは以下のプロパティを持ちます。 alias -- 借用元メンバのネームパス as -- 借用先メンバのネームパス JSDOC.Symbol[] object.inheritsFrom @augmentsタグから作成された、このシンボルの継承元クラスを表すシンボルオブジェクトの配列 String object.isa シンボルの種別を表す文字列 CONSTRUCTOR -- クラス(コンストラクタ)、名前空間 FILE -- ファイル。@fileOverviewタグの内容を持ちます。 FUNCTION -- 関数、メソッド、イベント OBJECT -- 上記以外のオブジェクト(変数、プロパティなど) Boolean object.isConstant このシンボルが定数ならtrue Boolean object.isEvent このシンボルがイベントならtrue Boolean object.isInner このシンボルが内部関数ならtrue Boolean object.isNamespace このシンボルが名前空間ならtrue Boolean object.isPrivate このシンボルのスコープがprivateならtrue Boolean object.isStatic このシンボルが静的メンバならtrue String object.memberOf このシンボルがメンバとして定義されているシンボルのネームパス JSDOC.Symbol[] object.methods このシンボルがメンバとしているメソッドシンボルの配列。他のクラスから継承しているものも含みます。 String object.name このシンボルの名前。 alias がネームパスによるシンボルのユニークな識別子であるのに対し、nameプロパティにはメソッド名のような単純な名称が設定されます。 JSDOC.DocTag[] object.params シンボルのパラメータを表すDocTagオブジェクトの配列 JSDOC.Symbol[] object.properties このシンボルがメンバとしているプロパティシンボルの配列。他のクラスから継承しているものも含みます。 String[] object.requires このシンボルが依存するシンボルのネームパスの配列 JSDOC.DocTag[] object.returns メソッドの戻り値。@returnsタグをパースしたDocTagオブジェクトの配列です。 String[] object.see 関連項目へのリンクを含むHTMLテキストまたはシンボルのネームパスの配列 String[] object.since このシンボルが使用可能になったバージョンに関する情報。@sinceタグが複数記述されていた場合、カンマ区切りの文字列に結合されています。 String object.srcFile このシンボルのソースファイルのパス String object.type データ型(クラスの場合はネームパス) String object.version バージョン。@versionタグが複数記述されていた場合、カンマ区切りの文字列に結合されています。 メソッド 説明 JSDOC.Symbol object.clone() このシンボルの複製を返します。 Boolean object.is(what) 引数で指定したシンボル種別文字列が isa プロパティと一致していればtrueを返します。 Boolean object.isBuiltin() このシンボルがJavaScriptの組み込みの関数やオブジェクトを表していればtrueを返します。 JSDOC.Symbol[] object.getEvents() このシンボルに含まれる全てのイベントシンボルの配列を返します。 JSDOC.Symbol[] object.getMethods() このシンボルに含まれる全てのメソッドシンボルの配列を返します。 Boolean object.hasMember(name) 引数で指定された名前かネームパスのシンボルをメンバを持っていればtrueを返します。 Boolean object.hasMethod(name) 引数で指定された名前かネームパスのメソッドを持っていればtrueを返します。 Boolean object.hasProperty(name) 引数で指定された名前かネームパスのプロパティを持っていればtrueを返します。 JSDOC.DocComment クラス DocCommentオブジェクトはシンボルと関連付けられたドックコメントをパースした結果を保持します。シンボルオブジェクトの comment プロパティから取得できます。 プロパティ 説明 String object.src ドックコメントのソーステキスト DocTag[] object.tags ドックコメントに含まれるタグオブジェクトの配列 メソッド 説明 JSDOC.DocTag[] object.getTag(title) タグタイトル(タグ名から"@"を除いた文字列)を受け取り、このドックコメント内で該当するタグを表すDocTagオブジェクトの配列を返します。 JSDOC.DocTag クラス DocTagオブジェクトはドックコメント内のタグをパースした結果をプロパティに保持しています。以下のプロパティに実際に値が設定されているかどうかは、タグの種類に依存します。 プロパティ 説明 String object.title タグタイトル(タグ名から"@"を除いた文字列) String object.desc 説明文 String object.type データ型。@propertyタグなどデータ型定義が記述されているタグで値が設定されます。 String object.name データの名前。@paramタグなどデータ名定義が記述されているタグで値が設定されます。 String object.isOptional @paramタグにおいて、パラメータが省略可能ならtrueが設定されます。 String object.defaultValue @paramタグにおいて、パラメータのデフォルト値が設定されます。 メソッド 説明 String object.toString() オブジェクトの文字列表現として、 desc プロパティの値を返します。 JSDOC.PluginManager 名前空間 JSDOC.PluginManagerはプラグインの登録とイベントの発生を管理します。プラグインについての詳細はこちらを参照してください。 メソッド 説明 void JSDOC.PluginManager.registerPlugin(name,functionMap) プラグインをシステムに登録します。引数 name には登録される全プラグインの中で重複しない登録名を、 functionMap には各イベントへのハンドラ関数をプロパティに持つオブジェクトを指定します。 void JSDOC.PluginManager.run(eventName,handlerArg) 引数 eventName で指定したイベントを発生させます。実行されるハンドラ関数には引数として handlerArg で指定したデータが渡されます。 SYS 名前空間 SYS名前空間は様々なシステム情報をプロパティに持ちます。特に pwd プロパティはテンプレート作成者にとって重要です。 プロパティ 説明 String SYS.os OS情報。アーキテクチャ、名称、バージョンをカンマ区切りで結合した文字列です。 String SYS.slash パス区切り文字 String SYS.userDir 現在の作業ディレクトリ String SYS.javaHome Javaのホームディレクトリ String SYS.pwd app/run.jsの絶対パス IO 名前空間 IO名前空間はファイルの読み書きを実行するメソッドのコレクションです。 メソッド 説明 void IO.copyFile(inFile,outDir[,outFileName]) ファイルをコピーします。引数 outFileName を省略した場合はコピー元のファイル名がそのまま使われます。 Boolean IO.exists(path) 指定されたパスが存在すればtrueを返します。 void IO.include(relativePath) SYS.pwd からの相対パスで指定されたファイルをロードします。 void IO.includeDir(relativePath) SYS.pwd からの相対パスで指定されたディレクトリに含まれるスクリプトファイル(拡張子が.jsのファイル)を全てロードします。 String[] IO.ls(dir[,recurse]) 指定されたディレクトリの配下を再帰的に検索し、ファイルパスのリストを返します。引数 recurse は検索する階層数を表し、デフォルトは1です。 void IO.makeDir(path) ディレクトリを作成します。 void IO.mkPath(path) パス階層を作成します。 String IO.readFile(path) ファイルを読み込み、内容を文字列として返します。 void IO.saveFile(outDir,fileName,content) content で指定した文字列をファイルに保存します。 void IO.setEncoding(encoding) ファイルの文字コーディングを設定します。デフォルトは"utf-8"です。 LOG 名前空間 LOG名前空間はログメッセージの出力に関する機能を提供します。 メソッド 説明 void LOG.warn(msg[,e]) 警告メッセージを出力します。eに例外オブジェクトを指定すると、ファイル名と行数が出力されます。 void LOG.inform(msg) 情報メッセージを出力します。(-vコマンドラインオプションが指定されている場合のみ有効) Dumper名前空間 オブジェクト、配列などのデータの内容をダンプする機能を提供します。この名前空間をテンプレートから使用する場合、テンプレート自身で以下のようにjsファイルをロードしておく必要があります。 IO.include("frame/Dumper.js"); メソッド 説明 String Dumper.dump(data) 指定されたデータを展開し、内容を文字列化して返します。 Link クラス LinkクラスはシンボルやファイルへのHTMLリンク( a タグ)を作成する機能を提供します。Linkオブジェクトのメソッドのほとんどは自分自身への参照を返すため、以下のようにリンクの設定処理をチェーンした後、最終的に toString メソッドでタグ文字列を出力するのが標準的な使用方法です。 new Link().toSymbol( MySymbol ).withText( マイシンボル ).toTarget( _blank ).toString(); 上の処理は次のようなHTMLテキストを出力します。(シンボルの出力先設定は標準テンプレートと同一と仮定) a href="./symbols/MySymbol.html" target="_blank" マイシンボル /a Linkオブジェクトを正常に動作させるには、 publish 関数に conf プロパティが存在していなくてはなりません。詳細はこちらを参照してください。 コンストラクタ 説明 new Link() Linkオブジェクトを作成します。 プロパティ 説明 String Link.base 相対パスでリンク先を指定する際のベースパス JSDOC.SymbolSet Link.symbolSet シンボルセット。ネームパスからシンボルを取得するために使用します。Linkクラスをテンプレートから使用する場合、 publish() 関数が受け取った SymbolSet オブジェクトを事前にこのプロパティに設定しておく必要があります。 メソッド 説明 Link object.target(targetName) a タグのtarget属性の値を設定します。 Link object.toFile(filePath) リンク先として通常のファイルパスを設定します。 Link object.toSrc(fileName) リンク先としてソースファイル名を設定します。これはハイライトされたソースコードファイルへのリンクとなります。 String object.toString() オブジェクトの文字列表現として、現在の設定に基づいて作成された a タグのHTMLテキストを返します。 Link object.toSymbol(alias) リンク先としてシンボル(のネームパス)を設定します。 Link object.withText(text) リンク表示されるテキストを設定します。設定しない場合はリンク先のパスが使われます。 関数 関数 説明 Object copy(obj) 引数で渡されたオブジェクトに対して、「深いコピー」による複製を作成して返します。ただし引数がオブジェクトでなかった場合は値をそのまま返します。この関数を使用する場合、循環参照による無限ループに注意してください。 Boolean defined(value) 引数 value が未定義(undefined)でなければtrueを返します。 Boolean isUnique(array) 引数で渡された配列の要素に重複がなければtrueを返します。 void Namespace(name[,func]) 名前空間階層を作成します。引数 name には"ns1.ns2.ns3"のように、名前空間の階層を"."区切りで指定します。名前空間が既に存在していれば何もせず、存在していなければ新しい名前空間を作成します。第2引数 func は省略可能で、名前空間作成後に実行される関数を設定することができます。 組み込みクラスの拡張 ReqExp クラス メソッド 説明 String RegExp.escapeMeta(str) 引数で渡された文字列中に含まれる正規表現メタ文字を全て\でエスケープした文字列を返します。 String クラス メソッド 説明 Number[] object.balance(opener,closer) この文字列中で開始文字 opener と終了文字 closer に囲まれる範囲を最大マッチで検索し、文字インデックス番号として返します。戻り値は数値の配列で、インデックス0が開始文字の番号を、インデックス1が終了文字の番号を表します。文字が見つからないなど範囲を確定できなかった場合、戻り値の番号には全て-1が設定されます。 String object.trim() 文字列の両端にある空白文字(スペースや改行)を除去した文字列を返します。 関連項目 テンプレート publish.js JsPlateファイル プラグインの追加
https://w.atwiki.jp/aias-closurecompiler/pages/28.html
トップページ エラーと警告のリファレンス このページはClosure Compilerがコンパイル時に出力するエラーと警告のリファレンスです。 ここで対象となっているのはコードの内容が原因となって発生するエラーと警告だけです。例えば必須パラメータの指定漏れのような、リクエストそのものの不備が原因となって発生するエラーについてはこちらで詳しく解説しています。 このページは公式サイトのこちらを元に作成しました。 目次 エラー JSC_BITWISE_OPERAND_OUT_OF_RANGE JSC_CONSTANT_REASSIGNED_VALUE_ERROR JSC_DIVIDE_BY_0_ERROR JSC_DUPLICATE_EXTERN_INPUT JSC_DUPLICATE_INPUT JSC_FRACTIONAL_BITWISE_OPERAND JSC_INDEX_OUT_OF_BOUNDS_ERROR JSC_INVALID_GETELEM_INDEX_ERROR JSC_NEGATING_A_NON_NUMBER_ERROR JSC_PARSE_ERROR JSC_SHIFT_AMOUNT_OUT_OF_BOUNDS JSC_TRAILING_COMMA 警告 JSC_BAD_DELETE_OPERAND JSC_BAD_TYPE_FOR_BIT_OPERATION JSC_CONSTRUCTOR_NOT_CALLABLE JSC_FUNCTION_MASKS_VARIABLE JSC_INVALID_FUNCTION_DECL JSC_NAMESPACE_REDEFINED JSC_NOT_A_CONSTRUCTOR JSC_NOT_FUNCTION_TYPE JSC_REDECLARED_VARIABLE JSC_REFERENCE_BEFORE_DECLARE JSC_SET_WITHOUT_READ JSC_SUSPICIOUS_SEMICOLON JSC_TYPE_MISMATCH JSC_UNDEFINED_NAME JSC_UNDEFINED_VARIABLE JSC_UNSAFE_NAMESPACE JSC_UNSAFE_THIS JSC_USED_GLOBAL_THIS JSC_USELESS_CODE JSC_VAR_ARGS_MUST_BE_LAST JSC_WRONG_ARGUMENT_COUNT エラー JSC_BITWISE_OPERAND_OUT_OF_RANGE Operand out of range, bitwise operation will lose information NUMBER {value of left-hand operand of bitwise operation} このエラーはビット演算において左側のオペランドのビット長が32ビットを超えていることを意味しています。例えば以下のコードでは 1024 * 1024 * 1024 * 2 が二進数表現で32ビットを超えているため、このエラーが発生します: // Produces JSC_BITWISE_OPERAND_OUT_OF_RANGE error var y = 1024 * 1024 * 1024 * 2 2; JavaScript自身は左側のオペランドが32ビットより長いビット演算を許しているように見えますが、実はその場合オペランドはこっそり32ビットに丸められて処理されています。Compilerは間違ったデータの消失を防ぐためにこのエラーを出力します。 JSC_CONSTANT_REASSIGNED_VALUE_ERROR constant {name of constant} assigned a value more than once. このエラーは定数に対し値が複数回代入されていることを意味しています。Compilerは大文字とアンダースコアだけで構成されている2文字以上の変数を定数として扱います。定数は一旦初期化された後でその値が変更されることがあってはなりません。例えば以下のコードはエラーになります: // Produces JSC_CONSTANT_REASSIGNED_VALUE_ERROR error var MY_CONSTANT = 1; MY_CONSTANT = 2; プロパティも同様です。以下のコードにも同じエラーが発生します: // Produces JSC_CONSTANT_REASSIGNED_VALUE_ERROR error var myObject = {}; myObject.MY_CONSTANT = 1; myObject.MY_CONSTANT = 2; このエラーを修正する場合、その変数を定数とすべきかどうかをまず判断してください。 もしあなたがその値を定数として使っていてこのエラーが発生したのなら、Compilerは定数が意図せずに2度初期化されている箇所を見つける手助けをしてくれたことになます。全て大文字の変数を定数と見なすルールは、変更したくない値であることを明示するとても手軽な方法といえます。 変数をCompilerに定数として認識させる手段としては、注釈コメントで@constタグを指定する方法もあります。 もしあなたがその値を定数として使っていなかったのであれば、変数名を少なくとも1つの小文字を含むものに変更してください。 JSC_DIVIDE_BY_0_ERROR Divide by 0 このエラーは除算において値を0で割ろうとしている箇所があることを意味しています。0による除算が行われるとJavaScriptの実行時エラーが発生します。 JSC_DUPLICATE_EXTERN_INPUT Duplicate extern input {URL} このエラーは同じexternファイルが複数回Compilerに渡されていることを意味しています。例えば同じURLを値にもつexterns_urlパラメータが2つ存在しているような場合に発生します。 このエラーを修正するには、重複した externs_url パラメータの一方を削除してください。 JSC_DUPLICATE_INPUT Duplicate input {File location} このエラーは同じJavaScriptソースが複数回Compilerに渡されていることを意味しています。例えば同じURLを値にもつcode_urlパラメータが2つ存在しているような場合に発生します。 このエラーを修正するには、重複した code_url パラメータの一方を削除してください。 JSC_FRACTIONAL_BITWISE_OPERAND Fractional bitwise operand NUMBER {non-integer value} このエラーはビット演算の値として整数ではなく浮動小数点数が使われていることを意味しています。例えば次のコードはこのエラーを発生させます: // Produces JSC_FRACTIONAL_BITWISE_OPERAND error var x = 5 2.5; alert(x); JSC_INDEX_OUT_OF_BOUNDS_ERROR Array index out of bounds {value of bad index}. このエラーはコードが存在しない位置の配列要素にアクセスしようとしていることを意味しています。例えば下の例では最大のインデックスが 2 である配列に対し x[3] とアクセスしているため、このエラーが発生します: // Produces JSC_INDEX_OUT_OF_BOUNDS_ERROR error var x = [0, 1, 2]; alert(x[3]); 配列インデックスが負数の場合にも、このエラーは発生します: // Produces JSC_INDEX_OUT_OF_BOUNDS_ERROR error var x = [0, 1, 2]; alert(x[-1]); // Produces JSC_INDEX_OUT_OF_BOUNDS_ERROR error var BAD_CONSTANT = -1; var x = [1,2,3]; alert(x[BAD_CONSTANT]); JSC_INVALID_GETELEM_INDEX_ERROR Array index not integer {non-integer value}. このエラーは配列インデックスに文字列、浮動小数点数、もしくはそれ以外の整数以外の値が使用されていることを意味しています。例えば次のコードはこのエラーを発生させます: // Produces JSC_INVALID_GETELEM_INDEX_ERROR var x = [1,2,3]; alert(x[ a ]); JSC_NEGATING_A_NON_NUMBER_ERROR Can t negate non-numeric value {non-numeric value} このエラーは負号(マイナス記号)が数値以外の式の前で使用されていることを意味しています。例えば次のコードはこのエラーを発生させます: // Produces JSC_NEGATING_A_NON_NUMBER_ERROR var x = - hello ; // Produces JSC_NEGATING_A_NON_NUMBER_ERROR var x = -{foo bar }; JSC_PARSE_ERROR Parse error. {Description of syntax error} このエラーはコンパイルしようとしているJavaScriptが文法的に正しくないことを意味しています。エラーメッセージに示された行を見てタイポやシンタックスエラーを確認し、コードをパース可能な状態に保ってください。 JSC_SHIFT_AMOUNT_OUT_OF_BOUNDS Shift amount out of bounds NUMBER {shift amount}. このエラーはビットシフト演算子( 、 、 )の2番目のオペランドが0未満または31より大きいことを意味しています。この2番目のオペランドはシフトの量を表すので、その値は必ず0と31の間でなければなりません。例えば次のコードはこのエラーを発生させます: // Produces JSC_SHIFT_AMOUNT_OUT_OF_BOUNDS var x = 5 32; alert(x); JSC_TRAILING_COMMA Parse error. Trailing comma is not legal in an ECMA-262 object initializer. このエラーは配列の最後の要素の後ろにカンマが付いていることを意味しています。例を示します: // Produces JSC_TRAILING_COMMA error var x = [1,2,3,]; オブジェクトリテラル内のプロパティリストの末尾にカンマが付いていた場合も、同じエラーが発生します: // Produces JSC_TRAILING_COMMA error var x = { foo foo , bar bar , }; 実際のところ上に示したコードは多くのブラウザで問題なく動作するのですが、これらは正しいECMAScriptとはいえません。末尾のカンマを削除しエラーを修正してください。 var x = [1,2,3]; var x = { foo foo , bar bar }; 警告 JSC_BAD_DELETE_OPERAND delete operator needs a reference operand この警告は delete 演算子がオブジェクトプロパティ、変数、配列要素以外の何らかの値に対し適用されていること意味しています。例えば文字列リテラルや数値に delete 演算子を適用するとこの警告が発生します: delete 1; delete abc ; JSC_BAD_TYPE_FOR_BIT_OPERATION {Name of bad operand} この警告はビット演算子のオペランドに整数以外の値が含まれていることを意味しています。以下のコードの最後の2行はこの警告を発生させます: var obj = {}; var x = 5 obj; // obj is not an integer var x = obj 5; // obj is still not an integer JavaScriptに定義されているビット演算子は以下のとおりです: ビット単位のAND | ビット単位のOR ^ ビット単位のXOR ~ ビット単位のNOR 左シフト 右シフト(左端に符号ビットをコピー) 右シフト(左端ビットを0埋め) JSC_CONSTRUCTOR_NOT_CALLABLE Constructor function (this {Name of constructor}) ? should be called with the new keyword. この警告はコンストラクタが new キーワードを使わずに通常の関数のように呼び出されている箇所があることを意味しています。CompilerはJSDocアノテーションの@constructorタグが付与されている関数だけをコンストラクタとして扱います。次のコードはこの警告を発生させます: // Produces JSC_CONSTRUCTOR_NOT_CALLABLE warning /** * @constructor */ function MyClass() { this.foo = bar ; } var y = MyClass(); 対照的に、以下のコードでは警告は発生しません: function MyClass() { this.foo = bar ; } var y = MyClass(); この警告が発生した場合、該当する行で new キーワードが抜けているところがないか確認してください。 JSC_FUNCTION_MASKS_VARIABLE function {name of function} masks variable. この警告はコード内で関数と同じ名前の変数が存在していることを意味しています。例えば、次のコードはこの警告を発生させます: // Produces JSC_FUNCTION_MASKS_VARIABLE warning var hello = 1; function hello() { alert( hi ); } このような名前の重複は単にコードを混乱させるだけでなく、Compilerが行ういくつかのコード変換処理が依拠している前提にも違反しています。この警告を除去するには、関数か変数のどちらかの名前を変更してください。 JSC_INVALID_FUNCTION_DECL function declaration must have a name この警告は関数宣言において function キーワードと引数リストの間に関数名が定義されていないことを意味しています。以下はその例です: // Produces JSC_INVALID_FUNCTION_DECL warning function (x) { return x + 1; } Compilerは上のコードを記述ミスと判断します。 このような関数宣言と「無名関数」の宣言は同じではないという点に注意してください。無名関数は変数に代入されるか、関数に引数として渡されるかたちで宣言されます。以下の例では警告は発生しません: var y = function (x) { return x + 1; } あるいは: doStuff(15, function(x) {return x + 1;}); JSC_NAMESPACE_REDEFINED namespace {name of object} should not be redefined この警告は、オブジェクトの重要なプロパティがそのオブジェクトの再初期化によって消去されたかもしれないことを意味しています。エラーメッセージの中の namespace (名前空間)という単語は、関数や変数をメンバとして保持するオブジェクトを指しています。例えば以下のコードにおいて、コンストラクタ関数 b は名前空間オブジェクト a のプロパティとして保持されています: // Produces JSC_NAMESPACE_REDEFINED warning var a = {}; /** @constructor */ a.b = function() { this.msg = hi ; }; a = {}; var x = new a.b(); 5行目の文 a = {} は既存の変数 a を、そこに含まれる b もろとも上書きしています。 この警告が発生した場合、メッセージに示されたオブジェクトが持つ全てのプロパティを本当に消去してよかったのか確認してください。 JSC_NOT_A_CONSTRUCTOR cannot instantiate non-constructor この警告はコンストラクタでない何かが new キーワードとともに使われたことを意味しています。例えば以下のコードは数値の 4 をインスタンス化しようとしているため、この警告が発生します: // Produces JSC_NOT_A_CONSTRUCTOR warning var x = new 4; CompilerはJSDocアノテーションの@constructorタグが付与されている関数はコンストラクタであると考えます。下はその例です: /** * @constructor */ function MyClass() { this.foo = bar ; } var obj = new MyClass(); alert(obj.foo); 同じコードでも @constructor タグが付いていなければ、この警告の対象となります: // Produces JSC_NOT_A_CONSTRUCTOR warning function MyClass() { this.foo = bar ; } var obj = new MyClass(); alert(obj.foo); JSC_NOT_FUNCTION_TYPE {expression type} expressions are not callable. この警告は関数でないものが関数としてコールされていることを意味します。例えば、次のコードはこの警告を発生させます: // Produces JSC_NOT_FUNCTION_TYPE warning var nonfunction = 4; var resultOfCallingNonfunction = nonfunction(); JSC_REDECLARED_VARIABLE Redeclared variable {variable name} この警告は宣言済みの変数に対し再度 var キーワードが使われていることを意味しています。以下はその例です: // Produces JSC_REDECLARED_VARIABLE warning var a = First declaration ; var a = Second declaration ; 関数内でその関数のパラメータと同じ名前の変数を宣言した場合も、同じ警告が発生します: function f(a) { var a = 2; } JavaScriptではif文やループのブロックが独立したスコープとならないことを忘れないでください。このため、次のコードもやはり警告を発生させます: function x(y) { if (true) { var y; } } このような名前の重複は単にコードを混乱させるだけでなく、Compilerが行ういくつかのコード変換処理が依拠している前提にも違反しています。この警告を除去するには、変数のどちらかの名前を変更してください。 JSC_REFERENCE_BEFORE_DECLARE Variable referenced before declaration {name of variable}. この警告は、ある変数が var キーワードによる宣言より前に使用されていることを意味しています。例えば、次のコードはこの警告を発生させます: // Produces JSC_REFERENCE_BEFORE_DECLARE warning x = 1; var x = 2; JSC_SET_WITHOUT_READ {Name of property} この警告は、オブジェクトのプロパティに値が設定された後、誰もそのプロパティにアクセスしていないことを意味しています。例えば、次のコードはこの警告を発生させます: // Produces JSC_SET_WITHOUT_READ warning var obj = {goodProp 1}; obj.unusedProp = 3; alert(obj.goodProp); この警告が発生した場合、そのプロパティが本当に必要かどうかをチェックし、不要であれば削除してください。プロパティが間違いなくコード内で使用されているという確信があるのであれば、タイポが原因で別のプロパティがアクセスされている箇所がないか確認してください。 JSC_SUSPICIOUS_SEMICOLON If this if/for/while really shouldn t have a body, use {}. この警告は if 、 for 、 while の直後にセミコロンが置かれていることを意味しています。以下はその例です: // Produces JSC_SUSPICIOUS_SEMICOLON warning if (true); else alert( no ); Compilerは本来は if (true) とセミコロンの間に何らかのコードが書かれるはずだったと考え、このコードを記述ミスと見なします。 もしあなたが本当に if 、 for 、 while の後に何も処理を置きたくなかったのであれば、セミコロンの代わりに空の中括弧を使ってください: if (true) {} else alert( no ); JSC_TYPE_MISMATCH {description of mismatch} found {type of mismatched expression} この警告は式の中でそのコンテキストからは想定されていない値が使われていることを意味しています。例えば以下のコードはオブジェクトリテラル{foo bar}と数値を比較しているため、この警告が発生します: // Produces JSC_TYPE_MISMATCH warning if ({foo bar} = 42) { alert( yes ); } 同様に、以下のコードではオブジェクトリテラルがビット単位AND演算の対象になっているため、この警告が発生します: // Produces JSC_TYPE_MISMATCH warning var obj = {}; var x = 5 obj; この警告の原因となっている箇所を見つけるには、エラーメッセージに示された行の中でメッセージの found の部分に挙げられたタイプに一致する式を探してください。 JSC_UNDEFINED_NAME Warning {Name of property} is never defined この警告は初期化されていないプロパティがアクセスされていることを意味しています。以下はその例です: // Produces JSC_UNDEFINED_NAME warning var root = {}; var reference = root.child; この警告を修正するには、参照される前にプロパティに値をセットしてください: var root = {}; root.child = 1; var reference = root.child; JSC_UNDEFINED_VARIABLE variable {name of variable} is undefined この警告は変数が var キーワードによって宣言されていないことを意味しています。例えば以下のコードが変数 firstUseOfName が出現する最初のものであれば、この警告が発生します: // Produces JSC_UNDEFINED_VARIABLE warning firstUseOfName = 1; この警告を修正するには、変数の前に var を入れてください: var firstUseOfName = 1; JSC_UNSAFE_NAMESPACE incomplete alias created for namespace {name of object}. この警告は、あなたのコードがADVANCED_OPTIMIZATIONSレベルのコンパイル後には利用できなくなるオブジェクトプロパティに依存していることを意味しています。エラーメッセージの中の namespace (名前空間)という単語は、関数や変数をメンバとして保持するオブジェクトを指しています。例えば以下のコードで、関数 c は名前空間 a.b のプロパティとして保持されています: // Produces JSC_UNSAFE_NAMESPACE warning var a = {}; a.b = {}; /** @constructor */ a.b.c = function(){ this.msg = hi ; }; var d = a.b; 最後の行は安全でない a.b への参照を含んでいます。この行では変数 d に a.b を代入していますが、 ADVANCED_OPTIMIZATIONS は a.b.c という階層構造を単純な変数に置き換えた後、 a.b をコードから取り除きます。このため、 a.b への参照は安全でないものとしてCompilerは警告を出力します。 ADVANCED_OPTIMIZATIONS レベルがコードに求める制約について、詳しくはこちらを参照してください。 JSC_UNSAFE_THIS dangerous use of this in static method {name of method}. この警告は this がオブジェクトの(プロトタイプメソッドではなく)スタティックなメソッドの中で使用されていることを意味しています。その結果として、ADVANCED_OPTIMIZATIONSでコンパイルを行うと this はそれが定義されているメソッドを参照しなくなってしまうと思われます。例えば下のコードのメソッド obj.myMethod() は危険な this を含んでいます: // Produces JSC_UNSAFE_THIS warning var obj = {}; obj.myMethod = function() { this.myProperty = 1; }; obj.myMethod(); alert(obj.myProperty); // We want this to say 1 このソースコードの中で、 obj.myMethod() の中の this は obj を参照しています。しかし ADVANCED_OPTIMIZATIONS レベルのコンパイラはより強力な圧縮のための準備段階として、 obj.myMethod を obj$myMethod という単純なシンボルに平坦化します。この変換によって関数はオブジェクトのプロパティではなく、ただのグローバルな関数になります。このコンテキストの中では、 this はグローバルな this (もしコードが標準的なWebページに置かれているなら、 window オブジェクト)を参照しています。 しかしコンストラクタ関数の中では、プロパティの平坦化が同様の問題を引き起こすことはありません。コンストラクタが new キーワードと共に呼び出されるとき、内部の this が指すものは平坦化によって変化しないからです。例えば次のコードでは警告は発生しません: var obj = {}; /** * @constructor */ obj.myMethod = function() { this.myProperty = 1; }; var instance = new obj.myMethod(); alert(instance.myProperty); // We want this to say 1 このバージョンのコードでは、 myMethod はコンストラクタとして( new キーワードと共に)呼び出されています。このコンストラクタの中で this は obj ではなく new obj.myMethod(); が生成するオブジェクトを参照しています。従って obj.myMethod() でも obj$myMethod() でも this の意味は同じなのです。 ただしここで、Compilerが obj.myMethod() をコンストラクタとして認識しているのは、それが@constructorタグでアノテートされているからである点に注意してください。もし上のコードから @constructor タグと除去すると、最初の例と同様に警告が発生します。コンストラクタ関数の実行時にこの警告が発生するのを防ぐため、全てのコンストラクタに @constructor アノテーションを付加するようにしてください。 この問題についてはこちらの説明も参照してください。 JSC_USED_GLOBAL_THIS dangerous use of the global this object. この警告は this がプロトタイプメソッドまたはコンストラクタ関数の外で使用されていることを意味しています。例えば以下のコードはこの警告を発生させます: // Produces JSC_USED_GLOBAL_THIS warning this.foo = 1; このケースで this は実際にグローバルオブジェクトを参照しています。標準的なWebページでは、グローバルオブジェクトは window オブジェクトと同一です。もしこの警告を受け取った場合、グローバルオブジェクトへの参照が本当に意図的なものであるか確認してください。 Compilerは下の例のように@constructorアノテーションが付加されている場合だけ、ある関数がコンストラクタであることを認識します: /** * @constructor */ function MyFunction() { this.foo = 1; } JSC_USELESS_CODE Suspicious code. This code lacks side-effects. Is there a bug? この警告はコードに何の効力も持たないステートメントが含まれていることを意味しています。1文字のミスタイプによって無意味なJavaScriptステートメントがうっかり作られてしまうケースはいくつか考えられます。例えば、下のコードの3行目は単独の文字列リテラルからなっていて、文法的には正しいJavaScriptですが、何の役割も果たしません: // Produces JSC_USELESS_CODE warning var s = "this string is " "continued on the next line but you forgot the +"; このコードの作者は2行目の最後に + を入れて、2行を1つのステートメントに収めようとしていたのでしょう。JavaScriptは行末のセミコロンを省略できるので、 + の抜けはコードを2つのステートメントに分けることになりました。そして後ろの方は効力を失ってしまったのです。 意味のないコードがうっかり作られてしまう簡単な例をもうひとつ示します。下のコードの作者は変数 x に 1 を代入しようとしたのですが、 = を1つ余計に含めてしまいました: // Produces JSC_USELESS_CODE warning x == 1; x に 1 が代入される代わりに、このステートメントは効力のない真偽式になっています。 この警告を受け取った場合、ステートメントを無意味化してしまうようなタイポがないか探してみてください。 JSC_VAR_ARGS_MUST_BE_LAST variable length argument must be last. この警告は、 var_args という名前の関数パラメータが使用されているにもかかわらず、その後ろに別のパラメータが定義されていることを意味しています。 var_args は特殊なパラメータで、その関数が可変数のパラメータを取ることをCompilerに示すために使われます。そして関数が var_args パラメータを持つ場合、それは必ず最後尾のパラメータでなければなりません。 例えば以下のコードはこの警告を発生させます: // Produces JSC_VAR_ARGS_MUST_BE_LAST warning function hi(a, var_args, b) { alert(a); } JSC_WRONG_ARGUMENT_COUNT Function {function name} called with {number of arguments in call} argument(s). Function requires at least {number of required arguments in function definition} argument(s) [and no more than {number of arguments in function definition} argument(s)]. この警告は関数呼び出しの際に引数の数が間違っていることを意味しています。例えば以下のコードはこの警告を発生させます。関数 hi() は2つの引数を取ると定義されているにもかかわらず、最後の行で行われている呼び出しでは引数が1つしか渡されていないからです: // Produces JSC_WRONG_ARGUMENT_COUNT warning function hi(a, b){ alert(a + b); } hi( hello ); JavaScriptは関数呼び出しにおいて引数の数が変化することを許しているので、この警告はコンパイルを妨げません。しかしコード内の間違いを見つける助けにはなってくれるはずです。 もしあなたが引数の数が変動する関数を使っており、かつこの警告を間違いの検出に用いたいと考えているなら、 var_args が役に立ちます。 var_args は引数の数が可変であることをCompilerに明示するための特殊なパラメータです。Compilerは関数の最後尾のパラメータとして var_args を見つけると、その関数の引数の数が可変であることを認識します。例えば以下のコードでは警告は発生しません: function hi(a, var_args){ var msg = a; if (arguments.length = 3) { msg += arguments[2]; } alert(msg); } hi( hello ); hi( hello , goodbye , what? ); 上の例の中で、JavaScriptの組み込み変数である arguments を使って付け加えられた引数にアクセスしている点に注意してください。 var_args はCompilerにとっては特別な意味をもっていますが、実体としては関数呼び出しの際に渡される2番目の引数にすぎません。追加された引数にアクセスするには arguments を使ってください。 arguments は配列のように動作するオブジェクトで、関数に渡された全てのパラメータを要素に含んでいます。 関数が var_args パラメータを持っていても、関数に渡されたパラメータの数が var_args より前に定義されているパラメータの数より少ない場合には、やはりComplilerはこの警告を発生させます。以下はその例です: // Produces JSC_WRONG_ARGUMENT_COUNT function hi(a, b, var_args){ alert(a + b); } hi( hello ); この関数は少なくとも2つの引数を必要とします。
https://w.atwiki.jp/perseidcross/pages/12.html
perlコマンド c プログラムの構文チェック d デバッガでスクリプトを実行 e プロンプトからスクリプトを入力 h オプションの一覧を表示 v Perlのバージョンを表示 w 警告を表示 日本語対応にする方法 encodin
https://w.atwiki.jp/meepforme/pages/20.html
原文ページはこちら ここでは、Meepパッケージの要点を説明します。 Sheme言語やlibctlが提供する関数は節名から省きます。 (libctlマニュアルを参照してください) 本項にはインターフェースが公開する関数を簡潔に列挙してあります。 より丁寧な入門が必要な場合、チュートリアルを参照してください。 また、本項は全ての関数を掲載しているわけではなく、またこれからも掲載する予定がないことに注意してください。 特に、SWINGラッパーのために、C++インターフェースの全ての関数はSchemeから利用できますが、それらの全てがエンドユーザーによる利用を意図するものという訳ではなく、故に記述されていません。 並列コンピューティングにはMeep並列化の紹介を参照してください。 入力変数 定義済み変数 定数(列挙型) クラスlatticeクラス material-typeクラス geometric-objectクラス symmetryクラス pmlクラス sourceクラス flux-regionクラス 補助関数ジオメトリユーティリティ 出力ファイル名 補助 電磁界計算 パラメータの再読み込み 電磁束スペクトル 周波数領域ソルバー 実行・ステップ関数実行関数 定義済みステップ関数出力関数 Harminv ステップ関数修飾子補助修飾子 ステップ時の操作 HDF5出力修飾子 ユーザー定義ステップ関数 低レベル関数構造と電磁界の初期化 SWINGラッパー 入力変数 定義済み変数 定数(列挙型) クラス latticeクラス material-typeクラス geometric-objectクラス symmetryクラス pmlクラス sourceクラス flux-regionクラス 補助関数 ジオメトリユーティリティ 出力ファイル名 補助 電磁界計算 パラメータの再読み込み 電磁束スペクトル 周波数領域ソルバー 実行・ステップ関数 実行関数 定義済みステップ関数 出力関数 Harminv ステップ関数修飾子 補助修飾子 ステップ時の操作 HDF5出力修飾子 ユーザー定義ステップ関数 低レベル関数 構造と電磁界の初期化 SWINGラッパー
https://w.atwiki.jp/starbasehgb/pages/16.html
YOLOL starBaseで用いられる独自プログラミング言語「YOLOL」の情報を、公式WIKIから持ってきて日本語化しています。バリバリ機械翻訳なので、追記していただけると助かります。 目次 YOLOL概要 基本情報どうやって使うの? コマンド・リファレンスケースセンシティブ(大文字小文字を区別しない) 変数小数 変数の型 デバイスフィールド/外部変数 演算子とコマンド基本的な算術演算子と代入演算子 論理演算子 変数タイプの混合 goto構文 if-else条件文if文のネスト(入れ子) コメント エラー [部分編集] 概要 「YOLOL」は、電気機器の制御と管理に使用されるプログラミング言語です。 コードは「チップ」に書き込まれ、「チップソケット」に挿入することにより読み取られ、実行されます。 YOLOLにより、ほぼすべてのデバイスのプログラミングと制御をすることが可能です。 基本情報 どうやって使うの? 実行されたコードは、書き込まれたチップと接続された、電気機器の監視と制御の両方に使用できます。 スクリプトに特定の行の変更、または実行を完全に停止するための命令がない限り、コードは行の上から下へ順番に実行され、最後の行の実行後に一行目からまた繰り返します。 簡単にいえば: コードは一行目から実行されて 一行目を実行したら、チップに設定された時間分停止した後、次の行へ進んで 上のプロセスが、それぞれの行で繰り返されて 最後の行が実行された後、チップは再び一行目を実行し始める(スクリプトに特定の行の変更、または実行を完全に停止するための命令が含まれていない場合) なお、空白行であっても時間の停止は発生するため、短い実行遅延として使用できます。(コメントのみの行も空白行と同じ扱い) コマンド・リファレンス ケースセンシティブ(大文字小文字を区別しない) このプログラミング言語は大文字と小文字を区別しません これは、次の2つのスクリプトが同じように機能することを意味します。 if ButtonState == 1 then DoorState = 1 end IF buttonstate == 1 THEN doorstate = 1 END buttonstateの値が1の場合、doorstateを1に設定します。 プログラミング言語の文字は、小文字でも大文字でも書くことができます。大文字と小文字を区別せずに解析されます。 これを利用して、コードを綺麗に見せることができます。 変数 変数は弱く型付けされ(型の有効性を強制しない)、2つのデータ型をサポートします。それは10進数の固定小数点演算(最大0.001までの精度)とString型です。簡単に言うと、変数は文字列または数値として代入でき、以前の型と同じでない場合でもエラーを発生させることなく、以前の型を無視できます。 各変数は常に単一の型ですが、必要に応じ勝手に変換されます。 初期化されていない変数の初期値は0で、null値はサポートされていません。 True / Falseは、0以外および0の数値です。True =! 0 False == 0 値を変数に割り当てると、変数は常に新しく割り当てられた値の型に変換されます。 ultimateAutopilot= 128.643 その結果、変数ultimateAutopilotには128.643の数値が含まれます。 ultimateAutopilot= "Error prone" これにより、変数ultimateAutopilotが文字列変数「Error prone」になり、数値128.643が削除されます。 小数 YOLOLの数値は、64ビットの10進数の固定小数点演算です。 変数は、最大3桁の精度で10進数を保持します。 その結果、最大値の範囲は(運用中であっても)[-9223372036854775.808、9223372036854775.807]です。 pieVariable= 3.142 上記のスクリプトは、数値3.142を変数pieVariableに割り当てます。 変数により正確な値を指定しても、最終結果には影響しません。 notPieVariable= 0.5772156649 上記のスクリプトは、0.5772156649の数値を変数notPieVariableに割り当てようとします。 ただし、最終結果は、notPieVariable == 0.577です。ここでは、より正確な値が切り捨てられ、小数点以下3桁のみが残ります。 変数の型 文字列値を指定するには、目的の文字列値を二重引用符で囲む必要があります。 badRobots= "saltberia" この命令は、「saltberia」の文字列値を変数badRobotsに割り当てます。 デバイスフィールド/外部変数 外部変数とデバイスフィールドは、次の構文で使用できます。 variableNamevariableName は、構築済みのデバイスフィールドIDです。 コロン( )は、スクリプトで宣言または使用できる変数を使用する代わりに、外部変数がアクセスされていることをコードに通知するために使用されます。 デバイスに接続されているチップは、同じネットワーク内のすべてのデバイスにアクセスできます。 そして、アクセスできるデバイスフィールドを通じて監視する事もできます。 if ButtonState == 1 then DoorState = 1 end 上記の命令は、データネットワークでButtonStateの値が1の場合、デバイスフィールドDoorStateを監視しているデバイスに1の値を送信します。 演算子とコマンド 使用可能な演算子は、チップの種類によって制限される場合があります。 基本的なチップでは単純な操作しか実行出来ませんが、より高度なチップではより複雑な操作を実行できます。 基本的な算術演算子と代入演算子 操作 数値演算 ストリング操作 A + B 加算 AにBが加算されます。 A - B 減算 AからBが引かれます A * B 乗算 ランタイムエラー。行の残りは無視されます。 A / B 除算 ランタイムエラー。行の残りは無視されます。 A ++ A=A+1 文字列Aにスペースを追加します。元の値を評価します。 A -- A=A-1 文字列の最後の文字を削除します。スペースを削除しようとすると、ランタイムエラーが発生します。元の値に評価します。 ++ A A=A+1 文字列Aにスペースを追加します。元の値を評価します。 -- A A=A-1 文字列の最後の文字を削除します。スペースを削除しようとすると、ランタイムエラーが発生します。元の値に評価します。 A = B 割り当て(変数Aは変数Bの値に設定されます) 割り当て A += B 追加割り当て(A = A+B) AにはA+Bの値が割り当てられます A -= B 減算割り当て(A = A-B) AにはA-Bの値が割り当てられます A *= B 乗算割り当て(A = A*B) 文字列変数の実行時エラー。行の残りは無視されます。 A /= B 除算割り当て(A = A/B) 文字列変数の実行時エラー。行の残りは無視されます。 A %= B 余り割り当て(A = A%B) 文字列変数の実行時エラー。行の残りは無視されます。 A ^ B 乗数(AのB乗) 文字列変数の実行時エラー。行の残りは無視されます。 A % B 余り(A/B=1余りx) 文字列変数の実行時エラー。行の残りは無視されます。 ABS A 絶対値(A=A if A =0,else A=-A) 文字列変数の実行時エラー。行の残りは無視されます。 A! 階乗 文字列変数の実行時エラー。行の残りは無視されます。 SQRT A Aの平方根(√) 文字列変数の実行時エラー。行の残りは無視されます。 SIN A Aのサイン(正弦) 文字列変数の実行時エラー。行の残りは無視されます。 COS A Aのコサイン(余弦) 文字列変数の実行時エラー。行の残りは無視されます。 TAN A Aのタンジェント(正接) 文字列変数の実行時エラー。行の残りは無視されます。 ASIN A Aの逆正弦 文字列変数の実行時エラー。行の残りは無視されます。 ACOS A Aの逆余弦 文字列変数の実行時エラー。行の残りは無視されます。 ATAN A Aの逆正接 文字列変数の実行時エラー。行の残りは無視されます。 論理演算子 論理演算子は、ステートメントが真か偽かを識別するチェックです。 すべての論理演算は、「0の場合はFalse」または「1の場合はTrue」を返します 操作 数値演算 ストリング操作 A B 未満 AがBよりも小さい場合は1を返し、そうでない場合は0を返します。 A B 超過 AがBよりも大きい場合は1を返し、そうでない場合は0を返します。 A = B 以下 AがBと等しい、もしくは小さい場合は1を返し、そうでない場合は0を返します。 A = B 以上 AがBと等しい、もしくは大きい場合は1を返し、そうでない場合は0を返します。 A != B 等しくない AがBと等しくない場合は1を返し、そうでない場合は0を返します。 A == B 等しい AがBと等しい場合は1を返し、そうでない場合は0を返します。 not、andおよびorを使用して、単純な変数値のチェックよりも複雑な条件を設定することもできます。 変数タイプの混合 変数タイプを混合した場合、すべてを文字列として処理されます。 A = "10" + 15 上記の命令により、文字列値「1015」を含むAが生成されます。 パラメーター自体はタイプを変更せず、値は操作の目的で文字列として変換されるだけであることに注意してください。 A = 15 B = "10" + A この命令が実行されると、Bにはストリング値「1015」が含まれますが、Aには数値15が含まれます。 goto構文 Goto構文は、コードの読み取り順序が1から20になっていない場合、または変更する必要がある場合に使用されます。 Gotoは次の構文で使用されます。 goto lineNumberlineNumberは、行き先の行です goto 3 end この場合3行目へ飛ぶ。 goto-commandの後にある、同じ行の残りの命令は実行されません。 goto 3 end goto 6 この場合6行目へは飛ばない。 goto構文がfalse状態の場合、goto構文は無視されます。false goto構文は無視されるため、条件を使用して複数のgoto構文を同じ行に追加できます。 if A == 5 then goto 4 end goto 6 Aの値が5の場合、4行目へ移動します。それ以外の場合、6行目へ移動します。 if-else条件文 if-else条件文は、コードを分岐するために使用されます。 次の構文を使用します。 if 条件 then 文 else 文 end条件は、結果として数値になる文(0はFalseとして解析され、その他はTrueとして解析される)であり、文は実行される命令の一部です。 すべてのif-else条件文には、文の完了後に必ずend構文が必要です。 変数値に基づいて一時的にスクリプト実行を2つの可能な結果に分岐するために使用できる場合。 例 if A != 2 then B = 3 else B = 4 end Aの値が2でない場合、Bの値を3に設定します。 Aの値が2である場合、Bの値を4に設定します。 elseは必要に応じて省略することが出来ます。 if A != 2 then B = 3 end Aの値が2でない場合、Bの値を3に設定し、それ以外は何もしません。 if文のネスト(入れ子) true / false構文内にif条件を配置して、複雑な分岐を実現することができます。 例: if A == 0 then B = 1 else if A == 1 then B = 2 end end Aが0である場合、Bを1に設定します。 Aが0ではないが、1に等しい場合、Bを2に設定します。 例 if A == 0 then if B == 1 then B = 2 end else B = 1 end Aが0で、Bが1の場合、Bを2に設定します。 それ以外の場合、Bを1に設定します。 入れ子にされたif文を含むコードをより適切な形式に調整することにより、コードの理解とデバッグが容易になる場合があります。 また、次のようなコードの作成はチップでは使用できませんが、コードをデバッグする際には便利な場合があります。 if A == 0 then if B == 1 then B = 2 end else B = 1 end コメント コメントは、多くのプログラマーが使用するコードを書くときに役立ちます。 コメントに対しても、1行70文字制限が適応されることに注意してください。 コメントは次の構文で使用されます。 //テキストテキストには、任意の単一行の文字を代入できます。 テキストに書いたことは実行されません。 //これはコメントです。 コメント構文の例 エラー プログラミング言語で発生する可能性のあるエラーには2つのタイプがあります。 構文エラー ランタイムエラー 構文エラーは、無効で解析不能な命令文から発生し、コード全体が実行されない結果になります。 ランタイムエラーは、命令の実行中にのみ発生します。その結果、その行で実行が中断されますが、エラーが出るまでの命令は実行され、残ります。
https://w.atwiki.jp/cocoareferencejp/pages/89.html
Tags Data Types Collections リファレンス 完成 Cocoa トップ リファレンス Data Management Data Types Collections NSNull クラスリファレンス NSNull クラスリファレンス翻訳元 このページの最終更新:2010-01-31 ADCの最終更新:2006-05-23 継承するクラス NSObject 準拠しているプロトコル NSCodingNSCopyingNSObject (NSObject) フレームワーク /System/Library/Frameworks/Foundation.framework 使用可能な環境 Mac OS X v10.0以降 コンパニオンガイド Number and Value Programming Topics for Cocoa 宣言ファイル NSNull.h サンプルコード AnimatedTableViewGeekGameBoardMyPhotoSimpleCalendarSketch+Accessibility 概観(Overview) NSNullクラスは(nilが使えない)コレクションオブジェクトにおいてnull値を表すのに 使われるシングルトンオブジェクトとして定義されています。 採用しているプロトコル(Adopted Protocols) NSCoding - encodeWithCoder - initWithCoder NSCopying - copyWithZone このクラスでできること(Tasks) インスタンスの取得(Obtaining an Instance) + null クラスメソッド null NSNullクラスのシングルトンインスタンスを返します。 + (NSNull *)null 戻り値 NSNullクラスのシングルトンインスタンス。 使用可能な条件 Mac OS X v10.0以降 サンプルコード AnimatedTableView? GeekGameBoard? MyPhoto? QTQuartzPlayer? SimpleCalendar? 宣言ファイル NSNull.h
https://w.atwiki.jp/git_jp/pages/35.html
準備中。 http //git-scm.com/docs と同じ分類で、各コマンドの man ページにリンクをはる予定です。 設定の変更 (Setup and Config) "config" -- gitの各種設定を変更 "help" -- 各コマンドのヘルプを表示 リポジトリの作成/複製 (Getting and Creating Projects) "init" -- リポジトリの新規作成 "clone" -- リポジトリの複製 コミット (Basic Snapshotting) "add" -- インデックス領域にファイルの変更を追加する "status" -- インデックス領域に入れたファイルを確認 "diff" -- 差分の表示 "commit" -- コミット(インデックス領域に入れた変更を記録する) "reset" -- インデックス領域からファイルの変更を削除する "rm" -- ファイルをバージョン管理対象から除外する "mv" -- ファイルのリネームをインデックス領域に記録する ブランチとマージ (Branching and Merging) "branch" -- ブランチの作成 "checkout" -- 指定ブランチに切り替える "merge" -- マージする "mergetool" -- "log" "stash" "tag" 共有 (Sharing and Updating Projects) "fetch" "pull" "push" "remote" "submodule" 履歴の探索 (Inspection and Comparison) "show" "log" "diff" "shortlog" "describe" パッチ (Patching) "am" "apply" "cherry-pick" "rebase" デバック支援 (Debugging) "bisect" "blame" メール (Email) "am" "apply" "format-patch" "send-email" "request-pull" 他SCMとの連携 (External Systems) "svn" "fast-import" 管理 (Administration) "gc" "fsck" "reflog" "filter-branch" "instaweb" "archive" サーバー管理 (Server Admin) "daemon" "update-server-info" 配管コマンド (Plumbing Commands) "cat-file" "commit-tree" "count-objects" "diff-index" "hash-object" "merge-base" "read-tree" "rev-list" "rev-parse" "show-ref" "symbolic-ref" "update-index" "update-ref" "verify-pack" "write-tree"